package com.astronomia.wheels.design_pattern.strategy_model;
import java.util.ArrayList;

public class ServiceFactory {

    // 建一个存放继承了抽象类的类的实例
    public static ArrayList<ServiceAbstract> parrentList = new ArrayList<>();

    public static void  init(){
        // 用于放置一些初始化，根据需要选择取舍
        parrentList.clear(); // 每次初始化先清除旧数据

        // 这里根据条件判断优先级放入目标对象,先放入的先判断
        parrentList.add(new WebService());
        parrentList.add(new MiniServicer());
        parrentList.add(new AppService());
        parrentList.add(new ForeZeroService());
    }

    public static ServiceAbstract createObjs(Object object){
        ServiceAbstract strategyModel;
        for(int i = 0; i < parrentList.size(); i ++){
            strategyModel = parrentList.get(i);
            if(strategyModel.isChoseCurrent(object)){ // 进入每个类的满足判断方法
                return strategyModel; // 如果当前条件满足，则直接返回目标对象
            }
        }
        return new com.astronomia.wheels.design_pattern.strategy_model.ForeZeroService();// 别忘了最后返回一个默认值，对应于最后一个else判断!
    }
}
